package com.ruoyi.common.enums;

import java.util.EnumSet;
import java.util.Objects;

public interface ICommonEnum {
     String getCode();
     String getInfo();

    static <E extends Enum<E> & ICommonEnum> E getEnmuByCode(String code, Class<E> clazz) {
        Objects.requireNonNull(code);
        EnumSet<E> all = EnumSet.allOf(clazz);
        return all.stream().filter(e -> e.getCode().equals(code)).findFirst().orElse(null);
    }

    static <E extends Enum<E> & ICommonEnum> E getEnmuByInfo(String info, Class<E> clazz) {
        Objects.requireNonNull(info);
        EnumSet<E> all = EnumSet.allOf(clazz);
        return all.stream().filter(e -> e.getInfo().equals(info)).findFirst().orElse(null);
    }
}
